Пока для тестирования оставил вариант с маленькой атакой, так как для нее не требуется писать дополнительных скриптов. Я не знаю, как работают функции отбора групп (отрядов) по условиям и как это оптимизировано внутри игры, но есть подозрение, что если в таймере выбирать все стенки на карте и потом искать боевые единицы врага вокруг каждой из них, это может быть долго. Для такого варианта хорошо кэшировать стены при постройке, но я на время тестирования не стал над этим заморачиваться. Всем спасибо за помощь.
После применения способности, игра просто доходит до ожидания, вызывает его и все. Можно ждать бесконечно, остальной код не будет исполнен.
TriggerSleepAction нельзя вызвать в кондишенах, только в действиях. Либо юзай экзекют, либо не юзай вейт
Результат тот же, до кода, следующего после цикла, исполнение не доходит.
Ты таким образом себе оп лимит сломал, ведь в первую же долю секунды цикл обрабатывает 25к+ действий
Дредлорда как колбасило при касте, так и колбасит, анимацию он отказывается адекватно
Таймером создаёшь нулевую задержку, устанавливаешь нужную анимацию, а дальше уже либо периодиком проверяешь приказ и отменяешь анимацию, либо через время просто отменяешь анимацию. Это основы гуи, не то что джасс)
вот так решается первый вариант
function InitTrig_Annihilation_Conditions takes nothing returns boolean
if (GetUnitAbilityLevel(GetSpellAbilityUnit(), udg_Annihilation) > 0) then
call ExecuteFunc( "AnnihilationActions" )
endif
return false
endfunction
и так второй
function ExecuteCast takes nothing returns nothing
local timer spellDurationTimer = GetExpiredTimer()
local integer timerHandle = GetHandleId(spellDurationTimer)
local unit target = LoadUnitHandle(udg_Hash, timerHandle, 0)
local unit caster = LoadUnitHandle(udg_Hash, timerHandle, 1)
call ResetUnitAnimation(caster)
call SetUnitExploded(target, true)
call KillUnit(target)
call DestroyTimer(spellDurationTimer)
set spellDurationTimer = null
endfunction
function SetAnim takes nothing returns nothing
local timer t = GetExpiredTimer( )
call SetUnitAnimation( LoadUnitHandle( H, GetHandleId( t ), 1 ), "channel" )
call TimerStart(t, 5, false, function ExecuteCast)
set t = null
endfunction
function AnnihilationActions takes nothing returns nothing
local unit target = GetSpellTargetUnit()
local unit caster = GetSpellAbilityUnit()
local timer spellDurationTimer = CreateTimer()
local integer timerHandle = GetHandleId(spellDurationTimer)
call SaveUnitHandle(udg_Hash, timerHandle, 0, target)
call SaveUnitHandle(udg_Hash, timerHandle, 1, caster)
call SetUnitAnimationByIndex(caster, 11)
call SetUnitZ(target, 400)
call TimerStart(spellDurationTimer, 0.00, false, function SetAnim)
set target = null
set caster = null
set spellDurationTimer = null
endfunction
Странно, попробуй тогда еще нестандартные кланы и фиксированные параметры игрока. Рамка в синематике (леттербокс режиме) должна быть та же, что и игровой интерфейс.
Честно, такого говна в триггерах я давно не видел. Пиши мне в дискорде (izobretatel__), объясню большинство ошибок. Возможно неправильный дс дал, напишешь свой.
Нашел ответ МУЖИКИ!
Кароче
кидаю скрин на ответ и продублирую текстом. ПРОБЛЕМА РЕШИЛАСЬ!!!
Мне в Дискорде Team OZE помогли, по английский понимаешь? я Просто оставлю это здесь:
Hey Legion TD - small update regarding the game-crash fake 12.0 incident from yesterday. I looked into it today and while there are many small changes made, meant to “corrupt” the savefile, only one of them is actually relevant . You can apply the following fix: Inside your CustomMapData folder (C:\Users\USERNAME\Documents\Warcraft III\CustomMapData\Legion_TD_TeamOZE) and inside your folder, there is a "Data.pld " and "Data.txt " file. Open them and delete the "\\t ". Save the files aaaaaaaand that should be it!
Между com и /channels пробел удали, и точку перед com поставь, и ссылка тебя выведет на их дискорд с этой проблемой, только надо пройти регистрацию если нет дискорда.
goodlyhero, ну уже вроде делали с перехватом кастом функций или хештаблицу, wenhao же видел? Там китайская сборка мемхака и 4 библиотеки.
Но вариант фога постабильнее, во первых микс файл в папке с варом позволит создавать карту в обычном режиме и тестировать, + встроенная защита спасёт от ошибок и фаталов на ровном месте, указывая где проблема.
Простые R\W функции то можно не трогать, там все норм. А вот конверты, хуки, вызовы из game.dll - это вот как раз требует нативного решения, ибо довольно медленное.
Ну и думаю ивенты без норм декларации нативок для триггеров не добавить...
quq_CCCP, Ну я на хайве видел полуджассовый вампиризм. Так мне и нужно вручать при замахе, чтоб если героя диспелят он вампиризм при атаке вернул. А утечку показывает, как я атакую, сразу хендл на один повышается. Может руна не удаляется? ClotPh, Вообще не понял о чём ты.
Решил проблему, утечка возникала из -за не удаления руны, она почему-то не удаляется изнутри триггера, создал отдельный для удаления и нет утечки.
Ну set bj_wantDestroyGroup не спасает полностью, потому что после уничтожения группы не объявляется set g = null, а решение - использовать глобалки или переходить на джасс
А "ничего не делать" выкинь нафиг из головы, эта функция делает только хуже
Условие первое на втором скрине вообще как-то криво построено, зачем там или если только одно условие?
Ну не у всех приказов есть строковые названия приказа, пример итемы не имеют. Но у всех может быть свой идишник, короче номер приказа. Его можно вывести на экран дебагом, если вы конечно, не знали. Посмотреть можно список всех приказов строковые и их идишники. Дабы отдавать приказы, есть нативки отдачи приказов так строковым, так и по ид. Правда, в гуи я точно помню, что близзард не ввели команды по работе с идишниками. Поэтому вводим код. Через custom script пишете текст, и вводите id-приказ. Вбей в поиск жезл иллюзии id приказ.
Я тоже не понимаю, что могло пойти "не так"?
Ты сам уже описал. По событию заносишь юнитов в группу. Потом нажимаешь способность "Атаковать" и юнит идут атаковать. Что может пойти "не так"?
описанная проблема это движок вара, а не ии. ничего с этим не сделать, на каждого игрока существует лимит юнитов которые нормально управляются, после идут статтеры
Your resource has not passed automoderation. Please make corrections or wait for the moderator to check.
Reason
There must be a file of one of the following types: mdl, mdx, fbx, obj, max, blend, mb, ma, 3ds, dae, dxf, usd, usdz, stl, stp, wrl, m2, zip, 7z, rar, tar, gz, apk, gzip, jar, lzip, tgz, tbz2, bz2, zipx, zz, dmg, ipg, z, iso
Есть функция проверки кол-ва ловкости героя, при этом можно посмотреть сколько ловкости от характеристик и сколько от предметов, исходя из кол-ва ловкости вручать предметные абилки на атаку.
Самое простое - апгрейды, триггерно повышать уровень улучшения которое будет действовать на героя, увы это не идеальный вариант, но один из самых просты. Так же вручать способности предметов на регенерацию здоровья \ маны.
Напрямую - никак, есть место только под 5 способностей. Делать свою систему прокачки способностей из спеллбука или какие либо еще способы, на подобии рпгшных карт.
А это никого не смущает? то что локалки поставлены не первыми
function Trig_treeegs_Actions takes nothing returns nothing
set udg_Unitper = GetSpellAbilityUnit()
local unit Usp = udg_Unitper
local unit orud1
local unit orud2
local unit orud3
. . .
В общем - рано тебе ещё прям так полностью переходить на Jass. Тут надо переделывать всё, начиная с момента удаления создаваемого эффекта, и вплоть до момента созданиея юнита по XY. А так же момент с полярными смещениями (ты там вообще лишнюю область создаёшь, а значит не знаешь как надо правильно полярки использовать на GUI).
Условия прохождения автомодерации:
Ресурс должен иметь инструкцию, как скачать и установить софт и как выпустить файлы игры для целевого игрока
Your resource has not passed automoderation. Please make corrections or wait for the moderator to check.
Reason
There must be a file of one of the following types: mdl, mdx, fbx, obj, max, blend, mb, ma, 3ds, dae, dxf, usd, usdz, stl, stp, wrl, m2, zip, 7z, rar, tar, gz, apk, gzip, jar, lzip, tgz, tbz2, bz2, zipx, zz, dmg, ipg, z, iso
Основной вес модели чаще всего составляют анимации. Обычно, mdlvis предоставляет достаточно инструментов, чтобы существенно снизить вес модели. Также, стоит приложить проблемную модель, чтобы вам помогли разобраться.
» WarCraft 3 / Mechanic
» WarCraft 3 / AI помогите
» Администрация XGM / Кнопка получить - баг
» WarCraft 3 / Ищу карту
» WarCraft 3 / Интерфейс в режиме кинематики
» WarCraft 3 / Помогите (ошибка)
» WarCraft 3 / Warcraft of heroes and magic 3
» WarCraft 3 / Использование кастомного кода
» WarCraft 3 / Где утечки
» WarCraft 3 / Даммик не кастует способность
» Game Dev / Исход Орды рефордж
» WarCraft 3 / возможно ли такое пофиксить?
» WarCraft 3 / Простой атаки приказ для всех юнитов
» WarCraft 3 / Капитан Алого Ордена
» WarCraft 3 / Капитан Алого Ордена
» WarCraft 3 / Предмет: повышение характеристик героя
» WarCraft 3 / Как начать писать свой код ИИ?
» Game Dev / )
Ресурс должен иметь инструкцию, как скачать и установить софт и как выпустить файлы игры для целевого игрока
» Администрация XGM / XGM Bot
» WarCraft 3 / Как делать тимколор текстуры